This invention relates to computer implemented modeling systems and methods for modeling time-dependent scenarios, systems and processes, and to tools for such systems and methods. The modeling may relate to planning activities for the generation of a time-based model, or plan, but could relate more generally to the generation of models for simulations, emulations, control structures, etc.
An example of a tool that can be used for modeling time-dependent situations is the well-known spreadsheet type of application for a computer system. An example of such a tool is Microsoft Excel program marketed by Microsoft Corporation. (Microsoft is a registered trademark of Microsoft Corporation). A spreadsheet is based on the concept of cells. The function of each cell in a two dimensional array of rows and columns is used to define inputs, calculations and outputs. A spreadsheet can thus be used for deriving a final report as defined by those inputs, calculations and outputs. For example, a typical application of a spreadsheet is to derive reports for financial planning. However, it can also be used for modeling the operation of, for example, a chemical process, or the operation of a complex system, for example the environmental controls of a building. In a such a case, the data to be processed in the spreadsheet need not relate to financial values, but could relate to the properties of the process, or of the environment of the building, by way of example only.
Although spreadsheets can be used for planning events that are related to time, spreadsheets are not ideally adapted for this task. This is as a result of the rigid way in which spreadsheets are defined in terms of the cells and the interaction between cells. For example, a column in a spreadsheet could be given an attribute relating to time. Individual cells in respective rows could then be given individual sets of data and calculations could be defined for the cells to produce a result that was time-related. If then, however, it were desired to investigate alternative scenarios with respect to time, it would be necessary to redefine or change the time-designation of the columns, the data in the cells and the interaction between the cells for the new scenario. The process of modifying the columns can be very complicated, requiring inordinate care to ensure that the designations of the respective cells correctly reflect the intended relationships. Indeed, in normal operation of a spreadsheet it is all too easy to damage a model. It can be seen, therefore, that a spreadsheet is not an ideal tool for planning.
Users of spreadsheets will be aware that using spreadsheets for planning can rapidly become very unwieldy due to the multiplicity of spreadsheets that may need to be generated, and the difficulty in relating one spreadsheet to another. There is, moreover, the difficulty of ensuring that the individual spreadsheets are accurate, due to the fact that a single error in a single cell, in a single column or row, can cause the generated results to be wrong. With a large number of cells and complex interactions between the cells, it can be very difficult indeed to ensure that all the entries in, and definitions of, the cells are correct. The difficulty in verifying the accuracy and correctness of the spreadsheet is at least partially a result of the row and column format of a spreadsheet, which is not intuitive.
A further difficulty with the operation of spreadsheets is the need to define a time-granularity for the calculations. If it is desired to model the same events on a different time-granularity, it will then be necessary completely to redefine the spreadsheet (effectively starting again from the beginning). In this, it is also to be noted that there is normally an upper limit to the number of columns in the spreadsheet. Accordingly, for a given granularity in time, only a relatively limited number of time periods can be modeled.
Critical path analysis techniques have been employed for the generation of time-based plans. Various specialist tools can be employed to carry out a critical path analysis, but they tend to be very complex and to require the knowledge of specially trained operators.
Planning tools are known that enable a graphical representation of planning activities and the relationship between activities to be planned. An example of such a tool is Microsoft Project, marketed by Microsoft Corporation. However, such planning tools effectively provide a computer-based alternative to the conventional wall charts that have been, and are still, used for planning purposes. Typically, they will not be used in isolation, but rather in combination with a spreadsheet to provide a full analysis of a plan. As a result, conventional planning tools of this type do not provide a solution to the problems described above.
Accordingly, an object of the present invention is to provide a modeling, or planning tool and a method and system incorporating such a tool that avoids, or at least mitigates, the problems associated with prior art approaches to planning and modeling in a computer system.
Particular and preferred aspects of the invention are set out in the accompanying independent and dependent claims. Combinations of features from the dependent claims may be combined with features of the independent claims as appropriate and not merely as explicitly set out in the claims.
In accordance with one aspect of the invention, there is provided a computer-implemented modeling system. A graphical user interface mechanism is configured to display a timeframe on a computer display medium. The graphical user interface mechanism is further configured selectively to display under user control, a representation of a selectable instance of at least one component object for a modeled entity. The representation of that component object instance as displayed with respect to the timeframe represents time-related properties for the component object instance. The component object includes a calculating engine defining the functionality of the modeled entity. The calculating engine is configured to respond to the time-related properties for the selected component object instance to perform calculations on at least one component object property for deriving an output comprising a time-series of output values. A result mechanism derives at least one result value based on the time-series of output values derived by the selected component object instance.
The invention employs a combination of a graphical user interface to define time-related properties, or parameters, of an object for a modeling entity in combination with an object including a computing engine (for example code or methods for implementing a process) which defines the functionality of the modeling entity and produces a time-series of output values in response to the time related properties. An embodiment of the invention is not merely a replacement for a conventional spreadsheet or planning tool, but rather employs a new and innovative approach to performing tasks previously performed by such tools, but without the disadvantages of those tools.
Hierarchical relationships can be established between component objects by means of properties defining links between the component objects. A plurality of user selectable object types can be provided, with each object type being for a respective modeling entity type and comprising a calculating engine defining a functionality specific to the respective modeling entity type. Examples of entity types are for a business group, a sales unit, an administration units, etc. in a financial or business planning application. In another application, for example for modeling the environmental controls of a building, they could relate to fuel supply, user occupancy unit, lighting, heating, air-conditioning, insulation, and other parameters of the overall system.
In a preferred embodiment of the invention, the displayed instance of a component object can be directly manipulated by the user in order to define the time-related properties. Alternatively, or in addition, the display of the instance of the object can be derived in response to separate input of time-related properties, for example by means of user entry of those properties in a data entry field.
Irrespective of the user definition of the instance of the object with respect to the timeframe, the representation of that instance of the object with respect to the timeframe facilitates the appreciation of the time-relationship of and the interdependency between component objects. Accordingly, more reliable entry of the time-related properties of a component object is possible than with a prior art approach.
The component object is automatically responsive to the input of the time-related properties, as represented by the display of the instance of the object with respect to the timeframe, to conduct calculations on properties of the component object for automatically generating an output as a time-series of the output values. This manner of input is particularly advantageous where, during derivation of the model, the lifespan and/or granularity of the time-related properties is/are changed, for example to investigate alternative scenarios.
The instance of a component object with respect to the timeframe can represent a lifespan with a start time and an end time for the component object and/or the granularity of the component object. In a preferred embodiment of the invention, the displayed instance of the component object with respect to the timeframe represents calculation datum points for respective output values of the time-series of output values for the component object. The time-series of output values includes at least one value associated with a timing derived from the relationship between the displayed object representation and the timeframe. In this manner, the visual representation can clearly indicate to the user the points in time for which output values in the time-series of output values is to be generated. Consequently, the accurate input of datum points is facilitated.
In a presently preferred embodiment of the invention, the timeframe defines a timeline indicating time values (e.g. dates or timing offsets). The timeline extends in a first direction (e.g., a row direction) with a plurality of spaced object lines parallel to the timeline. One or more displayed instances of the object may be defined in one or more object lines with the alignment of extremities of the component object(s) with respect to the timeline representing the start and end times for the component object(s).
Overlapping of the displayed instances of component objects within an object line can be prevented in order to preserve a desired time order for those component objects. Parent-child relationships can be derived between instances of component objects on respective object lines. In this manner a hierarchy of objects can be defined for modeling a scenario. The component objects contain links to other component objects for defining the relationship between component objects for one object line and/or for parent-child relationships.
The displayed representation could take alternative forms. For example, in a preferred embodiment of the invention a displayed instance of a component object is in the form of a bar, optionally with markers for the calculation datum points. Alternatively, the displayed representation could be in the form of a series of markers for the calculation datum points, with the markers being joined to represent the lifespan of a component object.
One object can provide the time-series of values, or a set of objects can each provide one or more of values of the time-series of output values.
A parent component object is preferably arranged to hold properties of any component object that is a child thereof. The child is then able to access properties from the parent. The properties can actually be stored in the parent object, or could alternatively be defined by a link within the object to properties held outside the object. In this manner, a component object can be responsive to a request for output from the result mechanism to obtain, from its parent object, properties for calculating an output comprising the time-series of output values, the output values being determined at the datum points defined by the time-related properties for the component object.
A root object can be defined, with the user-defined hierarchy of component objects being dependent therefrom, for modeling a scenario. The graphical user interface mechanism can be responsive to the root object and the defined series of the inter-object relationships to display a representation of the hierarchy of component objects. The links between objects can be displayed between respective displayed instances of the component objects. Selective expansion, or contraction, of displayed sub-hierarchies of component object instances can be provided. Also, a displayed instance of a component object may be selectively enabled and disabled. Optionally, the selective expansion, or contraction, of displayed sub-hierarchies of component object instances can also be provided.
To facilitate the selection of object types by the user, the graphical user interface can be configured to display a plurality of predefined object types selectable by the user for positioning with respect to the timeframe, the displayed object types automatically adopting a time-based representation with respect to the timeframe on being superimposed on the timeframe. The graphical user interface can also be configured to display an input field for inputting properties of a component object. The representation displayed for an object can be arranged to reflect the state of that object, as to whether it is in an enabled, disabled, selected, error, or other state.
A model may be formed of a plurality of component models, each component model comprising one or more component objects. A property may be in the form of an array of values. Also, a property may be sub-divided into sub-properties.
Where reference is made to the properties of a component object, these can include one or more of the following (by way of examples only): a value; an array of values; a time-series of values; a state; a Boolean; a string; a timing; a duration; a link; a bit map; or a binary stream.
The graphical user interface can be configured to display a plurality of icons corresponding to user selectable component object types. Each component object type can be for respective modeling entity type and can comprise a calculating engine defining a functionality specific to the respective modeling entity type. The icons can be selectable by a user for positioning a representation of a component object instance with respect to the timeframe. The graphical user interface can also be configured to display a data field for inputting properties of a component object.
In a preferred embodiment of the invention, the result mechanism is operable to generate a report, for example a financial report, including at least one time-series of output values. The report can be displayed on the display medium, printed on a printer, stored in memory, or exported, as required. In another embodiment, the result mechanism could, however, be arranged to provide at least one control value for controlling the operation of a modeled system.
The modeling system can be operable to model alternative scenarios as part of a single model. For example, a component object can be configured to record respective properties for plural scenarios.
In accordance with another aspect of the invention, there is provided a revision mechanism. The revision mechanism records revisions of the model including the definition of a hierarchy of revision entries, each revision entry including pointers to adjoining entries in the hierarchy and including a definition of a previous value of a property and an current value of a property. In responsive to selection of a revision of the model of the scenario, the revision mechanism is able to access the linked series of revision entries selectively to remove and to reintroduce the selected revision for the current version of the model. The revision system provides a very flexible and reliable way of deactivating and reactivating changes to investigate different combinations of properties.
In accordance with another aspect of the invention, there is provided a computer system comprising a processor, storage, a display device, at least one user input device and a program-implemented modeling tool. The modeling tool comprises a graphical user interface mechanism configured to display a timeframe on a computer display medium. The graphical user interface mechanism is also configured selectively to display, under user control, a representation of a selectable instance of at least one component object for a modeled entity. The representation of that component object instance as displayed with respect to the timeframe represents time-related properties for the component object instance. The component object includes a calculating engine defining the functionality of the modeled entity. The calculating engine is configured to respond to the time-related properties for the selected component object instance to perform calculations on at least one component object property for deriving an output comprising a time-series of output values. A result mechanism is operable to derive at least one result value based on the time-series of output values derived by the selected component object instance.
In accordance with a further aspect of the invention, there is provided a carrier medium carrying a computer program-implemented modeling tool. The modeling tool comprises graphical user interface instructions configured to display a timeframe on a computer display medium. The graphical user interface instructions are further configured selectively to display, under user control, a representation of a selectable instance of at least one component object for a modeled entity. The representation of that component object instance as displayed with respect to the timeframe represents time-related properties for the component object instance. Component object definition instructions define the component object for a modeled entity. The component object comprises a calculating engine defining the functionality of the modeled entity. The calculating engine is configured to respond to the time-related properties for the selected component object instance to perform calculations on at least one component object property for deriving an output comprising a time-series of output values. Result generation instructions are configured to derive at least one result value based on the time-series of output values derived by the selected component object instance.
The carrier medium can be computer readable storage medium, for example a magnetic, optical, magneto-optical or any other form of computer readable storage medium. Alternatively, it could comprise a telecommunications transmission medium such as an electrical, optical or electromagnetic communications medium.
In accordance with another aspect of the invention, a computer-implemented planning system comprises a plurality of selectable object types. Each object type defines a type of planning entity and includes a calculating engine for defining the functionality of the planning entity. At least a selected one of the object types includes definitions of time dependent properties and a calculating engine operable to perform time-dependent operations in response to property values for the time-dependent properties. A control mechanism defines an object hierarchy in response to user input, which user input includes specifications of property values for the time dependent properties. The control mechanism generates outputs in the form of time-series of values in response to calculations performed by the calculating engines of the objects.
The invention also provides carrier medium carrying an object definition for a computer-implemented planning system. The object defines the functionality of a planning entity. It includes a definition of a time dependent property and a definition of time-dependent operations configured to respond to input property values for the time-dependent properties to produce a time-series of output values.
In accordance with a further aspect of the invention, there is provided a computer-implemented modeling method. The method includes:
displaying a timeframe on a computer display medium;
displaying, under user control, a representation of a selectable instance of at least one component object for a modeled entity, the representation of that component object instance as displayed with respect to the timeframe representing time-related properties for the component object instance;
causing the component object to be responsive to the time-related properties for the component object instance to perform calculations for the modeled entity on component object properties for deriving an output comprising a time-series of output values; and
producing at least one result value based on the time-series of output values derived by at least one component object.
An embodiment of the invention provides a flexible and powerful planning and modeling tool that is easily understood by users without needing extensive training. It enables the generation of multiple reports in an easy and efficient manner, enabling the user to investigate changes to the model or plan and directly to be able to see the results of those changes. It greatly enhances a modeling or planning process, saving costs and producing better results than with conventional tools.